{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "42042724-41d7-45f0-9c4b-19446b888e1a",
   "metadata": {},
   "source": [
    "## 机器学习中的几个重要概念"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e9debbf2-47ef-4830-91f4-ada978a277c4",
   "metadata": {},
   "source": [
    "# pandas read_csv"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "e61d8cfc-b24f-4035-a4e5-f8928bc29283",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "9441aa21-1b57-49ae-be15-a22f8142af35",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 33 entries, 0 to 32\n",
      "Data columns (total 2 columns):\n",
      " #   Column           Non-Null Count  Dtype  \n",
      "---  ------           --------------  -----  \n",
      " 0   YearsExperience  33 non-null     float64\n",
      " 1   Salary           33 non-null     float64\n",
      "dtypes: float64(2)\n",
      "memory usage: 660.0 bytes\n"
     ]
    }
   ],
   "source": [
    "df=pd.read_csv('Salary_Data.csv')\n",
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "73569cf7-c74e-4d96-bdf6-da6181903a39",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " \n",
      "2.281 x + 7.003\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x=df['YearsExperience']\n",
    "y=df['Salary']\n",
    "plt.scatter(x,y,color='red',marker='+')\n",
    "fit=np.poly1d(np.polyfit(x,y,1))\n",
    "p1=np.poly1d(fit)\n",
    "print(p1)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "38f91f3b-08ce-48b9-a0a3-790c386f9334",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def plot_pred(w, b):\n",
    "  y_pred = x*w + b\n",
    "  plt.plot(x, y_pred, color=\"blue\", label=\"pre\")\n",
    "  plt.scatter(x, y, marker=\"x\", color=\"red\", label=\"true data\")\n",
    "  plt.title('year and salary')\n",
    "  plt.xlabel(\"year\")\n",
    "  plt.ylabel(\"salary\")\n",
    "  plt.xlim([0, 12])\n",
    "  plt.ylim([-60, 140])\n",
    "  plt.legend()\n",
    "  plt.show()\n",
    "\n",
    "plot_pred(-5, -30)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "b40e40d6-5b6a-4b87-9d3b-04aa3087779d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "1d8c58a671884a548957bb344b726886",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "interactive(children=(IntSlider(value=0, description='w', min=-100), IntSlider(value=0, description='b', min=-…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<function __main__.plot_pred(w, b)>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from ipywidgets import interact\n",
    "\n",
    "interact(plot_pred, w=(-100, 100, 1), b=(-100, 100, 1))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "61f8ca76-2819-4444-812c-20cc56f65a90",
   "metadata": {},
   "source": [
    "## loss function-损失函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "327bc07a-7329-4059-8585-4fcfb767ad88",
   "metadata": {},
   "outputs": [],
   "source": [
    "def compute_cost(x, y, w, b):\n",
    "  y_pred = w*x + b\n",
    "  cost = (y - y_pred)**2\n",
    "  cost = cost.sum() / len(x)\n",
    "\n",
    "  return cost"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "b049422f-1760-48a5-aa8a-943c1db709ac",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "np.float64(2.871515151515152)"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "compute_cost(x,y,2,8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "4a059da5-afa5-42d6-a65c-adebee4bcb88",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "\n",
    "costs = []\n",
    "for w in range(-100, 101):\n",
    "  cost = compute_cost(x, y, w, 0)\n",
    "  costs.append(cost)\n",
    "\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "plt.plot(range(-100, 101), costs)\n",
    "plt.title(\"cost function b=0 w=-100~100\")\n",
    "plt.xlabel(\"w\")\n",
    "plt.ylabel(\"costs\")\n",
    "plt.show()\n",
    "   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "7b501a84-8fdf-4dd8-8b89-0e423814c902",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[461185.0069697 , 459973.36757576, 458763.72818182, ...,\n",
       "        260286.4069697 , 259470.76757576, 258657.12818182],\n",
       "       [453468.4380303 , 452266.56227273, 451066.68651515, ...,\n",
       "        254503.0380303 , 253697.16227273, 252893.28651515],\n",
       "       [445817.42      , 444625.30787879, 443435.19575758, ...,\n",
       "        248785.22      , 247989.10787879, 247194.99575758],\n",
       "       ...,\n",
       "       [211743.7369697 , 212465.29757576, 213188.85818182, ...,\n",
       "        393618.7369697 , 394736.29757576, 395855.85818182],\n",
       "       [217006.2480303 , 217737.57227273, 218470.89651515, ...,\n",
       "        400814.4480303 , 401941.77227273, 403071.09651515],\n",
       "       [222334.31      , 223075.39787879, 223818.48575758, ...,\n",
       "        408075.71      , 409212.79787879, 410351.88575758]],\n",
       "      shape=(201, 201))"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "ws = np.arange(-100, 101)\n",
    "bs = np.arange(-100, 101)\n",
    "costs = np.zeros((201, 201))\n",
    "\n",
    "i = 0\n",
    "for w in ws: \n",
    "  j = 0\n",
    "  for b in bs: \n",
    "    cost = compute_cost(x, y, w, b)\n",
    "    costs[i,j] = cost\n",
    "    j = j+1\n",
    "  i = i+1\n",
    "\n",
    "costs\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "88b16697-3b8f-4d02-ab95-e3eff4566b4f",
   "metadata": {},
   "outputs": [
    {
     "ename": "FileNotFoundError",
     "evalue": "[Errno 2] No such file or directory: 'SimHei.ttf'",
     "output_type": "error",
     "traceback": [
      "\u001b[31m---------------------------------------------------------------------------\u001b[39m",
      "\u001b[31mFileNotFoundError\u001b[39m                         Traceback (most recent call last)",
      "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[28]\u001b[39m\u001b[32m, line 4\u001b[39m\n\u001b[32m      1\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mmatplotlib\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mmpl\u001b[39;00m \n\u001b[32m      2\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mmatplotlib\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mfont_manager\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m fontManager\n\u001b[32m----> \u001b[39m\u001b[32m4\u001b[39m \u001b[43mfontManager\u001b[49m\u001b[43m.\u001b[49m\u001b[43maddfont\u001b[49m\u001b[43m(\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mSimHei.ttf\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[32m      5\u001b[39m mpl.rc(\u001b[33m'\u001b[39m\u001b[33mfont\u001b[39m\u001b[33m'\u001b[39m, family=\u001b[33m\"\u001b[39m\u001b[33mSimHei\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m      7\u001b[39m plt.figure(figsize=(\u001b[32m7\u001b[39m, \u001b[32m7\u001b[39m))\n",
      "\u001b[36mFile \u001b[39m\u001b[32m~\\miniconda3\\Lib\\site-packages\\matplotlib\\font_manager.py:1136\u001b[39m, in \u001b[36mFontManager.addfont\u001b[39m\u001b[34m(self, path)\u001b[39m\n\u001b[32m   1134\u001b[39m     \u001b[38;5;28mself\u001b[39m.afmlist.append(prop)\n\u001b[32m   1135\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m-> \u001b[39m\u001b[32m1136\u001b[39m     font = \u001b[43mft2font\u001b[49m\u001b[43m.\u001b[49m\u001b[43mFT2Font\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpath\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m   1137\u001b[39m     prop = ttfFontProperty(font)\n\u001b[32m   1138\u001b[39m     \u001b[38;5;28mself\u001b[39m.ttflist.append(prop)\n",
      "\u001b[31mFileNotFoundError\u001b[39m: [Errno 2] No such file or directory: 'SimHei.ttf'"
     ]
    }
   ],
   "source": [
    "import matplotlib as mpl \n",
    "from matplotlib.font_manager import fontManager\n",
    "\n",
    "fontManager.addfont(\"SimHei.ttf\")\n",
    "mpl.rc('font', family=\"SimHei\")\n",
    "\n",
    "plt.figure(figsize=(7, 7))\n",
    "ax = plt.axes(projection=\"3d\")\n",
    "ax.view_init(30, 50)\n",
    "ax.xaxis.set_pane_color((0, 0, 0))\n",
    "ax.yaxis.set_pane_color((0, 0, 0))\n",
    "ax.zaxis.set_pane_color((0, 0, 0))\n",
    "\n",
    "b_grid, w_grid = np.meshgrid(bs, ws)\n",
    "# https://wangyeming.github.io/2018/11/12/numpy-meshgrid/\n",
    "\n",
    "ax.plot_surface(w_grid, b_grid, costs, cmap=\"Spectral_r\", alpha=0.7)\n",
    "ax.plot_wireframe(w_grid, b_grid, costs, color=\"black\", alpha=0.1)\n",
    "\n",
    "ax.set_title(\"w b the cost\")\n",
    "ax.set_xlabel(\"w\")\n",
    "ax.set_ylabel(\"b\")\n",
    "ax.set_zlabel(\"cost\")\n",
    "\n",
    "w_index, b_index = np.where(costs == np.min(costs))\n",
    "ax.scatter(ws[w_index], bs[b_index], costs[w_index, b_index], color=\"red\", s=40)\n",
    "\n",
    "plt.show()\n",
    "\n",
    "print(f\"当w={ws[w_index]}, b={bs[b_index]} will be min cost:{costs[w_index, b_index]}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f62932c7-66b5-4939-9d3f-1a916755c424",
   "metadata": {},
   "source": [
    "## gradient descent"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "9b388ac1-b7dd-4faa-8ed7-02bc9a584c5b",
   "metadata": {},
   "outputs": [],
   "source": [
    "def compute_gradient(x, y, w, b):\n",
    "  w_gradient = (x*(w*x+b -y)).mean()\n",
    "  b_gradient = (w*x+b -y).mean()\n",
    "  return w_gradient, b_gradient"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "4a4f6bee-e65a-4d40-bb10-7b1b02b54b4b",
   "metadata": {},
   "outputs": [],
   "source": [
    "def gradient_descent(x, y, w_init, b_init, learning_rate, cost_function, gradient_function, run_iter, p_iter=1000):\n",
    "  \n",
    "  c_hist = []\n",
    "  w_hist = []\n",
    "  b_hist = []\n",
    "  \n",
    "  w = w_init\n",
    "  b = b_init\n",
    "\n",
    "  for i in range(run_iter):\n",
    "    w_gradient, b_gradient = gradient_function(x, y, w, b)\n",
    "\n",
    "    w = w - w_gradient*learning_rate\n",
    "    b = b - b_gradient*learning_rate\n",
    "    cost = cost_function(x, y, w, b)\n",
    "\n",
    "    w_hist.append(w)\n",
    "    b_hist.append(b)\n",
    "    c_hist.append(cost)\n",
    "\n",
    "    if i%p_iter == 0:\n",
    "      print(f\"Iteration {i:5} : Cost {cost: .4e}, w: {w: .2e}, b: {b: .2e}, w_gradient: {w_gradient: .2e}, b_gradient: {b_gradient: .2e}\")\n",
    "\n",
    "  return w, b, w_hist, b_hist, c_hist"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "1a5f1905-390d-4dde-bcdc-ba767ad1ba55",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iteration     0 : Cost  3.5355e+02, w:  1.09e-01, b:  1.81e-02, w_gradient: -1.09e+02, b_gradient: -1.81e+01\n",
      "Iteration  1000 : Cost  8.8106e+00, w:  3.03e+00, b:  2.02e+00, w_gradient:  2.00e-01, b_gradient: -1.33e+00\n",
      "Iteration  2000 : Cost  6.0039e+00, w:  2.85e+00, b:  3.18e+00, w_gradient:  1.53e-01, b_gradient: -1.02e+00\n",
      "Iteration  3000 : Cost  4.3582e+00, w:  2.72e+00, b:  4.08e+00, w_gradient:  1.17e-01, b_gradient: -7.80e-01\n",
      "Iteration  4000 : Cost  3.3933e+00, w:  2.62e+00, b:  4.76e+00, w_gradient:  8.97e-02, b_gradient: -5.98e-01\n",
      "Iteration  5000 : Cost  2.8275e+00, w:  2.54e+00, b:  5.29e+00, w_gradient:  6.87e-02, b_gradient: -4.58e-01\n",
      "Iteration  6000 : Cost  2.4958e+00, w:  2.48e+00, b:  5.69e+00, w_gradient:  5.26e-02, b_gradient: -3.50e-01\n",
      "Iteration  7000 : Cost  2.3013e+00, w:  2.43e+00, b:  6.00e+00, w_gradient:  4.03e-02, b_gradient: -2.68e-01\n",
      "Iteration  8000 : Cost  2.1873e+00, w:  2.40e+00, b:  6.23e+00, w_gradient:  3.09e-02, b_gradient: -2.05e-01\n",
      "Iteration  9000 : Cost  2.1204e+00, w:  2.37e+00, b:  6.41e+00, w_gradient:  2.36e-02, b_gradient: -1.57e-01\n",
      "Iteration 10000 : Cost  2.0812e+00, w:  2.35e+00, b:  6.55e+00, w_gradient:  1.81e-02, b_gradient: -1.20e-01\n",
      "Iteration 11000 : Cost  2.0582e+00, w:  2.33e+00, b:  6.66e+00, w_gradient:  1.39e-02, b_gradient: -9.22e-02\n",
      "Iteration 12000 : Cost  2.0447e+00, w:  2.32e+00, b:  6.74e+00, w_gradient:  1.06e-02, b_gradient: -7.06e-02\n",
      "Iteration 13000 : Cost  2.0368e+00, w:  2.31e+00, b:  6.80e+00, w_gradient:  8.12e-03, b_gradient: -5.41e-02\n",
      "Iteration 14000 : Cost  2.0322e+00, w:  2.30e+00, b:  6.85e+00, w_gradient:  6.22e-03, b_gradient: -4.14e-02\n",
      "Iteration 15000 : Cost  2.0295e+00, w:  2.30e+00, b:  6.88e+00, w_gradient:  4.76e-03, b_gradient: -3.17e-02\n",
      "Iteration 16000 : Cost  2.0279e+00, w:  2.29e+00, b:  6.91e+00, w_gradient:  3.65e-03, b_gradient: -2.43e-02\n",
      "Iteration 17000 : Cost  2.0269e+00, w:  2.29e+00, b:  6.93e+00, w_gradient:  2.79e-03, b_gradient: -1.86e-02\n",
      "Iteration 18000 : Cost  2.0264e+00, w:  2.29e+00, b:  6.95e+00, w_gradient:  2.14e-03, b_gradient: -1.42e-02\n",
      "Iteration 19000 : Cost  2.0261e+00, w:  2.29e+00, b:  6.96e+00, w_gradient:  1.64e-03, b_gradient: -1.09e-02\n"
     ]
    }
   ],
   "source": [
    "w_init = 0\n",
    "b_init = 0\n",
    "learning_rate = 1.0e-3\n",
    "run_iter = 20000\n",
    "\n",
    "w_final, b_final, w_hist, b_hist, c_hist = gradient_descent(x, y, w_init, b_init, learning_rate, compute_cost, compute_gradient, run_iter)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "08e79a22-597b-45b9-9132-9a5b284c8af1",
   "metadata": {},
   "source": [
    "## 作业"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "9f5fb94e-f5cb-4fed-83f2-59ff01de6747",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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UzB27FicOHECPXv2RGFhIVq1aoV169bh6NGjeP7555GYmIh9+/ZZPc97772H1q1b49dff8XLL7+Ml156CSdPnrT6mGnTpuG9997DwYMH4efnhxEjRijHli9fjtmzZ2P+/PlIS0tDgwYN8Mknn1ToGn18fDBu3DicO3cOaWlpAORdTR977DFs3rwZv/76K3r27InHH38c58+fByCn2cTExOCtt95CZmam8m1CRf8+RERE3uLUqVOQJMloMm7v3r2uG5CzCRdbv369mDZtmlizZo0AINauXWu239q1a0XLli1FdHS0WLBggdGxF198UdSvX19s2rRJHDp0SHTt2lW0bNlS3Lx5U+nTq1cvER8fL3bv3i12794t4uPjRZ8+fZTjN2/eFPHx8aJr167i0KFDYtOmTSI6OlqMHj3aruvRaDQCgNBoNCbHCgoKxPHjx0VBQYFd57w1QCFiYoQAzN8kSYjYWLlfFVm8eLFQq9XK/fT0dAFApKSklPvYxx57TEycOFG537lzZzFu3DjlfsOGDcXQoUOV+6WlpSI8PFx88sknRs/166+/CiGE2Lp1qwAgNm/erDzmhx9+EACUv2+bNm3EK6+8YjSODh06iJYtW1ocZ9nnMXTixAkBQHz11VcWH9+8eXPx4YcfGl1X2ferOWX/PhVRqfcXERGRk7z66qsCgMktLS3NaWOwFq85g8tzwB999FE8+uijVvtkZGRg9OjR+Omnn9C7d2+jYxqNBv/973+xdOlSdO/eHQCwbNkyxMbGYvPmzejZsydOnDiBDRs2YO/evWjTpg0A4PPPP0e7du1w6tQpNGvWDBs3bsTx48dx4cIFREdHA5BnZIcPH47Zs2ejZs2aVXD1dti503Tm25AQwIULcr8uXZw2LABo3bq10X2dTod58+bhq6++QkZGBoqKilBUVASVSmX1PPfee6/yuz7VJScnx+bHREVFAQBycnLQoEEDnDp1Ci+//LJR/4ceeghbtmyx6brKEkIoYwMArVaLmTNnYt26dbh06RJu3ryJgoICZQbckor+fYiIiLyBb5l1a40bN8axY8eq1S7OLk9BKU9paSkSExPx6quv4p577jE5npaWhpKSEvTo0UNpi46ORnx8PHbv3g0A2LNnD9RqtRJ8A0Dbtm2hVquN+sTHxyvBNwD07NkTRUVFSsqBOUVFRcjLyzO6VQmDxZAO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IjIyUgQGBoqHH35YHDlyxOg8BQUFYvTo0aJOnToiKChI9OnTR5w/f96oz5UrV8TTTz8tQkNDRWhoqHj66adFbm6uUZ9z586J3r17i6CgIFGnTh0xevRooxJD5DxlA3C+D6qP77//XsTHx4vAwEBx1113ic8++8zoON8L3i8vL0+MGzdONGjQQNSoUUM0btxYTJs2TRQVFSl9+D7wPlu3bjUbEwwbNkwI4X6v+e+//y46deokAgMDRWRkpEhOTrarBKEQQkhC2Lt1DxERERERVRRzwImIiIiInIgBOBERERGREzEAJyIiIiJyIgbgREREREROxACciIiIiMiJGIATERERETkRA3AiIiIiIidiAE5ERERE5EQMwImIqilJkmy6LVy4EJIkYcOGDRbP9fnnn0OSJKSmpjrxCoiIPBN3wiQiqqb27t1rdP9f//oXtm7dii1bthi1R0VFoVmzZujbty++/vprs+dq3749/vrrL2RkZMDf37/KxkxE5A38XD0AIiJyjbZt2xrdr1evHnx8fEzaAaBfv3745ptvcOXKFYSFhRkdO3nyJPbs2YOJEycy+CYisgFTUIiIqFwjR45EcXExVqxYYXJs8eLFAIARI0Y4e1hERB6JATgREZWre/fuaNiwIb744gujdp1Oh6VLl6Jt27Zo3ry5i0ZHRORZGIATEVG5fHx8MHz4cBw+fBi//vqr0v7jjz8iMzMTI0eOdOHoiIg8CwNwIiKyybPPPgsfHx+jWfDFixdDpVJh0KBBLhwZEZFnYQBOREQ2adiwIbp164YVK1agqKgIf//9N9atW4cBAwYgNDTU1cMjIvIYrIJCREQ2GzlyJDZt2oRvv/0Wly5dQnFxMdNPiIjsxACciIhs9sQTTyAsLAxffPEFMjMzceedd6Jjx46uHhYRkUdhCgoREdksMDAQTz/9NDZu3Ijff/+dpQeJiCqAATgREdll5MiREELA19cXzzzzjKuHQ0TkcbgVPRERERGRE3EGnIiIiIjIiRiAExERERE5EQNwIiIiIiInYgBOREREROREDMCJiIiIiJyIATgRERERkRMxACciIiIiciIG4ERERERETsQAnIiIiIjIiRiAExERERE5EQNwIiIiIiIn+n/ufh3GlPSMPAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 800x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Regression Equation: y = 0.1389 * x + 761.1474\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "df = pd.read_csv('DutchAdvert.csv')\n",
    "x = df[['tv']]\n",
    "y = df[['radio']]\n",
    "\n",
    "x_train, x_test, y_train, y_test = train_test_split(\n",
    "    x, y, test_size=0.5, random_state=1\n",
    ")\n",
    "\n",
    "lr_model = LinearRegression()\n",
    "lr_model.fit(x_train, y_train)\n",
    "y_pred = lr_model.predict(x_test)\n",
    "\n",
    "slope = lr_model.coef_[0][0]\n",
    "intercept = lr_model.intercept_[0]\n",
    "\n",
    "plt.figure(figsize=(8, 5))\n",
    "plt.scatter(x_train, y_train, c='red', marker='o', label='Training Data')\n",
    "plt.scatter(x_test, y_test, c='green', marker='+', label='Test Data')\n",
    "plt.plot(x_test, y_pred, 'k--', linewidth=2, label='Prediction Line')\n",
    "\n",
    "plt.xlabel('TV', fontsize=12)\n",
    "plt.ylabel('Radio', fontsize=12)\n",
    "plt.legend(fontsize=10)\n",
    "plt.title('TV vs Radio', fontsize=14)\n",
    "plt.show()\n",
    "\n",
    "print(f\"Regression Equation: y = {slope:.4f} * x + {intercept:.4f}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7b1a9f73-689f-4852-97e1-9eb6d93b528d",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:base] *",
   "language": "python",
   "name": "conda-base-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
